#include <iostream>
template<int N>
void f() {
    static int a{0};
    std::cout << ++a << std::endl;
}
void g(int n) {
    static int a{0};
    std::cout << ++a << std::endl;
}
int main() {
    // 以不同模板实参调用 f 模板，
    // 每次都生成不同的实例，
    // 不同实例中静态局部变量 a 分别只自增一次，
    // 最终输出 1 1 1
    f<1>(); f<2>(); f<3>();
    // 多次以不同参数调用 g 函数
    // 每次调用的都是同一个函数
    // 导致每次调用静态局部变量 a 都会发生自增，
    // 最终输出 1 2 3
    g(1); g(2); g(3);
}
